package com.jinghangzz.shop.common.dao;

import java.util.List;
import java.util.Map;

/**
 * 都是公共的代码
 * ~在公共的dao层,不能出现子类的pojo引用,朝代;皇上
 * ~把这些pojo换成Object
 * ~非要在父类的接口中引用子类的pojo;使用一个变量来替换;在实现子类的时候使用此变量;
 * 		变量:=====泛型;
 * 			定义:在父类中定义,一般使用一个字母表示就可以;E(Element),T,K,V
 * 			使用:在子类中定义泛型的具体类型
 * @author TeaBig
 */
public interface IBaseDao<T>
{

	/**
	 * 查询一条记录
	 * @param condMap
	 * @return	返回结果
	 */
	T findOneDao(Map<String, Object> condMap);
	
	/**
	 * 查询多条记录
	 * @param condMap	搜索条件
	 * @return	结果是一个集合
	 */
	List<T> findCondList(Map<String, Object> condMap);
	
	/**
	 * 保存一条记录
	 * @param dynasty	参数朝代对象
	 * @return	返回值;此条sql语句执行对数据库的影响条数
	 */
	int saveOne(T t);
	
	/**
	 * 更新一条朝代
	 * @return
	 */
	int updateOne(T t);
	
	/**
	 * 批量删除
	 * @param condMap
	 * @return
	 */
	int deleteBatch(Map<String, Object> condMap);
	
	/**
	 * 删除一条
	 * @param condMap
	 * @return
	 */
	int deleteOne(T t);
}
